<template>
  <div class="upload">
    <el-card>
      <h3 style="text-align: center">{{ $route.query.name }}导入</h3>
      <UploadExcel :on-success="onSuccess" />
    </el-card>
  </div>
</template>

<script>
import { sysUserBatch } from '@/api/employees'
export default {
  name: 'Upload',
  data() {
    return {}
  },
  computed: {},
  created() {},
  methods: {
    async onSuccess({ header, results }) {
      // 将中文key 转化为英文的key
      // 1.定义转换规则
      const obj = {
        入职日期: 'timeOfEntry',
        姓名: 'username',
        工号: 'workNumber',
        手机号: 'mobile',
        转正日期: 'correctionTime'
      }
      // 2.通过数组循环产生新的数组(key值的转化)
      // item 为[入职日期,姓名,工号...]
      const arr = results.map((item) => {
        const newObj = {}
        Object.keys(item).forEach((item2) => {
          // obj[item2] 为obj.入职日期=timeOfEntry ...
          newObj[obj[item2]] = item[item2]
          // 将时间做处理
          if (obj[item2] === 'timeOfEntry' || obj[item2] === 'correctionTime') {
            newObj[obj[item2]] = this.changeDate(item[item2])
          }
        })
        return newObj
      })
      console.log(header, results, arr)
      // 导入成功后,调用接口
      await sysUserBatch(arr)
      // 提示用户
      this.$message.success('批量导入成功')
      // 跳转至展示页面  会自动刷新渲染
      this.$router.push('/employees')
    },

    // 将表格中的时间转化为标准时间 表格是从微软1900年到相应的天数 从一开始 从8点开始 js中的时间戳是从1970年0时开始计算
    changeDate(num) {
      // 先将时间转化为时间戳
      const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      // 将时间减少70年
      t.setYear(t.getFullYear() - 70)
      return t
    }
  }
}
</script>
<style lang="scss" scoped></style>
